package models;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import play.db.ebean.Model;


@Entity
@Table(name = "planos_negocios_atividades")
public class Atividade extends Model{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE)
	@Column(name = "plna_id")
	private Integer id;
	
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "plna_plnf_id", nullable = false)
	private Fases fases;
	
	@ManyToOne
	@JoinColumn(name = "plna_pnta_id", nullable = false)
	private TipoAtividades tipoAtividade;
	
	@Column(name = "plna_nome", nullable = false, length = 150)
	private String nome;
	
	@Column(name = "plna_descricao", nullable = false)
	private String descricao;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "plna_dt_inicio", nullable = false)
	private Date dtInicio;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "plna_dt_fim")
	private Date dtFim;

	public Atividade() {
		super();
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Fases getFases() {
		return fases;
	}

	public void setFases(Fases fases) {
		this.fases = fases;
	}

	public TipoAtividades getTipoAtividade() {
		return tipoAtividade;
	}

	public void setTipoAtividade(TipoAtividades tipoAtividade) {
		this.tipoAtividade = tipoAtividade;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public Date getDtInicio() {
		return dtInicio;
	}

	public void setDtInicio(Date dtInicio) {
		this.dtInicio = dtInicio;
	}

	public Date getDtFim() {
		return dtFim;
	}

	public void setDtFim(Date dtFim) {
		this.dtFim = dtFim;
	}
	
	public static Model.Finder<Integer, Atividade> find = new Finder<Integer, Atividade>(Integer.class, Atividade.class);
}
